(()=>{var rn=Object.create;var Ke=Object.defineProperty;var nn=Object.getOwnPropertyDescriptor;var on=Object.getOwnPropertyNames;var sn=Object.getPrototypeOf,an=Object.prototype.hasOwnProperty;var cn=(e,t)=>()=>(e&&(t=e(e=0)),t);var Je=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports);var un=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of on(t))!an.call(e,o)&&o!==r&&Ke(e,o,{get:()=>t[o],enumerable:!(n=nn(t,o))||n.enumerable});return e};var ln=(e,t,r)=>(r=e!=null?rn(sn(e)):{},un(t||!e||!e.__esModule?Ke(r,"default",{value:e,enumerable:!0}):r,e));var l,s=cn(()=>{l={ap1:"1.8.122",eu1:"1.8.122","eu1-b":"1.8.122",us1:"1.8.122"}});var kr=Je((ku,Rr)=>{s();var pi=[{name:"Chrome",flags:["isChrome"],regex:/(?:Chrome|CriOS)\/([0-9]+)\./i},{name:"Firefox",flags:["isFirefox"],regex:/Firefox\/([0-9]+)\./i},{name:"IE",flags:["isIE"],regex:/(?:MSIE|Trident.*rv)[: ]([0-9]+)\./i},{name:"Opera",flags:["isOpera"],regex:/Opera\/.*Version\/([0-9]+)/i},{name:"Safari",flags:["isSafari"],regex:/AppleWebKit\/.*Version\/([0-9]+)/i},{name:"Unknown",flags:["isUnknown"],regex:null}],gi=[{name:"Motorola Razr",flags:["isTablet"],platform:"Tablet",regex:/ Android .*? Droid Razr/i},{name:"Motorola Xoom",flags:["isTablet"],platform:"Tablet",regex:/ Android .*? Xoom/i},{name:"Samsung Tablet",flags:["isTablet"],platform:"Tablet",regex:/ Android .*? (SCH-I|GT-P)/i},{name:"Android Phone",flags:["isPhone"],platform:"Phone",regex:/ Android .*? (Chrome|Version)\/[.0-9]* Mobile/i},{name:"Android Tablet",flags:["isTablet"],platform:"Tablet",regex:/ Android .*? (Chrome|Version)\/[.0-9]* (?!Mobile)/i},{name:"Firefox OS",flags:["isPhone"],platform:"Phone",regex:/Mozilla.*?Mobile.*?Gecko.*?Firefox/i},{name:"iPad",flags:["isTablet"],platform:"Tablet",regex:/iPad/i},{name:"iPhone",flags:["isPhone"],platform:"Phone",regex:/iPhone|iPod/i},{name:"BlackBerry Phone",flags:["isPhone"],platform:"Phone",regex:/BlackBerry|BB10/i},{name:"BlackBerry Playbook",flags:["isTablet"],platform:"Tablet",regex:/Playbook/i},{name:"Motorola Droid",flags:["isPhone"],platform:"Phone",regex:/(Droid|SHOLS_U2|XT[0-9]{4})/i},{name:"HTC",flags:["isPhone"],platform:"Phone",regex:/HTC One|HTC Sensation|Sprint APA9292KT/i},{name:"Kindle",flags:["isTablet"],platform:"Tablet",regex:/Silk|Kindle/i},{name:"LG",flags:["isPhone"],platform:"Phone",regex:/LG-M|LG-E|LG-P/i},{name:"Nexus Phone",flags:["isPhone"],platform:"Phone",regex:/Nexus 4|Nexus 5|Nexus S/i},{name:"Nexus Tablet",flags:["isTablet"],platform:"Tablet",regex:/Nexus 7|Nexus 10/i},{name:"Nokia",flags:["isPhone"],platform:"Phone",regex:/Nokia|Windows Phone/i},{name:"Samsung Phone",flags:["isPhone"],platform:"Phone",regex:/SM-N900|GT-I|GT-N|SAMSUNG-SGH|SAMSUNG SCH/i},{name:"Sony",flags:["isPhone"],platform:"Phone",regex:/LT28|SonyEricsson|Sony/i},{name:"PC",flags:["isDesktop"],platform:"Desktop",regex:null}];function hi(e,t){pi.some(function(r){var n=null;if(!r.regex||(n=r.regex.exec(t)))return e.browser=r.name,r.flags.forEach(function(o){e[o]=!0}),e.version=n&&n.length>0?Number(n[1]):0,t.indexOf("Trident/4")!==-1&&e.version<8&&(e.version=8),t.indexOf("Trident/5")!==-1&&e.version<9&&(e.version=9),t.indexOf("Trident/6")!==-1&&e.version<10&&(e.version=10),t.indexOf("Trident/7")!==-1&&e.version<11&&(e.version=11),!0})}function yi(e,t){gi.some(function(r){if(!r.regex||r.regex.test(t))return e.device=r.name,r.flags.forEach(function(n){e[n]=!0}),e.platform=r.platform,!0})}Rr.exports=function(e){var t={browser:"IE",device:"PC",isChrome:!1,isDesktop:!1,isFirefox:!1,isIE:!1,isOpera:!1,isPhone:!1,isSafari:!1,isTablet:!1,isUnknown:!1,platform:"Desktop",version:0};return hi(t,e),yi(t,e),t}});var Lr=Je((Lu,Dr)=>{s();Dr.exports=kr()});s();s();function We(){try{decodeURIComponent(location.href)}catch{throw new Error("invalid UTF-8 on url-encoded query params")}}s();s();s();s();var _=[];for(let e=0;e<256;++e)_.push((e+256).toString(16).slice(1));function Qe(e,t=0){return(_[e[t+0]]+_[e[t+1]]+_[e[t+2]]+_[e[t+3]]+"-"+_[e[t+4]]+_[e[t+5]]+"-"+_[e[t+6]]+_[e[t+7]]+"-"+_[e[t+8]]+_[e[t+9]]+"-"+_[e[t+10]]+_[e[t+11]]+_[e[t+12]]+_[e[t+13]]+_[e[t+14]]+_[e[t+15]]).toLowerCase()}s();var pe,fn=new Uint8Array(16);function ge(){if(!pe){if(typeof crypto>"u"||!crypto.getRandomValues)throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");pe=crypto.getRandomValues.bind(crypto)}return pe(fn)}s();s();var mn=typeof crypto<"u"&&crypto.randomUUID&&crypto.randomUUID.bind(crypto),he={randomUUID:mn};function pn(e,t,r){e=e||{};let n=e.random??e.rng?.()??ge();if(n.length<16)throw new Error("Random bytes length must be >= 16");if(n[6]=n[6]&15|64,n[8]=n[8]&63|128,t){if(r=r||0,r<0||r+16>t.length)throw new RangeError(`UUID byte range ${r}:${r+15} is out of buffer bounds`);for(let o=0;o<16;++o)t[r+o]=n[o];return t}return Qe(n)}function gn(e,t,r){return he.randomUUID&&!t&&!e?he.randomUUID():pn(e,t,r)}var F=gn;s();var ye="__DF_DEBUG_MODE__",Xe="true",q=window.sessionStorage;function Ze(){q.setItem(ye,Xe)}function et(){q.removeItem(ye)}function hn(){return q.getItem(ye)===Xe}function X(e){return q.getItem(e)||window[e]}function Z(e,t){q.setItem(e,t)}function d(...e){hn()&&console.log("[doofinder]",...e)}s();s();var _e="df-cookies-allowed",ee=window.localStorage,yn=window.sessionStorage,w="functional",L="analytical",Te=[w,L],_n=["df-previous-kv-email","df-previous-kv-userid","df-random-userid","df-recommendation-widget-last-clicked-item"],Tn=["df-apps","df-hashid","df-latest-visits","df-script-version","df-session","df-tab-id"];function we(e){let t={};return Te.forEach(r=>t[r]=e),t}function tt(){ee.removeItem(_e)}function be(){let e=JSON.parse(ee.getItem(_e)||"false");if(typeof e=="boolean")return we(e);let t={};return Te.forEach(r=>t[r]=e[r]===!0),t}function nt(e){ee.setItem(_e,JSON.stringify(e))}function wn(e,t){if(e[t])return;let r=[ee,yn];(t===L?_n:Tn).forEach(o=>{r.forEach(i=>i.removeItem(o))})}function rt(e){Te.forEach(t=>wn(e,t))}function Se(e){let t;e===void 0?t=we(!0):(t=be(),t[e]=!0),nt(t)}function ot(e){let t=we(!1);if(e===void 0){rt(t),tt();return}if(t=be(),t[e]=!1,Object.values(t).every(n=>!n)){tt();return}nt(t),rt(t)}function it(e){return be()[e]===!0}var bn="df",Pe=window.localStorage;function Ee(e){return`${bn}-${e}`}function P(e,t=Pe){return JSON.parse(t.getItem(Ee(e)))}function y(e,t,r,n=Pe){return it(e)?(n.setItem(Ee(t),JSON.stringify(r)),r):null}function st(e,t=Pe){return t.removeItem(Ee(e))}s();s();async function A(e,t){let n={method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify(t)};return n.mode="cors",await fetch(e,n)}s();function te(e){return`https://${e}-search.doofinder.com`}var Sn=50,at="latest-visits";function ct(e){try{let t=new URL(e);return t.origin+t.pathname}catch{return e}}async function Pn(e,t,r){try{let n=await A(`${te(e)}/6/${t}/_dfids`,{datatypes:[],urls:[r]});if(n.ok){let i=(await n.json()).results||[];if(i.length>0)return i[0].dfid}}catch(n){d("[session][getDfid] Failed to fetch dfid",n)}return null}async function ut(e){let{hashid:t,dfidPromise:r}=e,n=window.location.href;if(!t||!n){d("[session][registerVisitAtSession] no hashid or url provided","hashid",t,"url",n);return}let o=ct(n),i=await r,a={url:o};i&&(a.dfid=i);let u=z();return u[t]=u[t]||[],u[t].push(a),u[t]=u[t].slice(-Sn),y(w,at,u),u}function lt(e,t=10){if(!e)return d("[session][getLatestDfids] No hashid provided. Returning empty array."),[];let n=z(e).filter(({dfid:i})=>typeof i=="string").map(({dfid:i})=>i);return[...new Set(n)].slice(-t)}function z(e){let t=P(at)||{};return e?t[e]||[]:t}function En(e,t){return z(e).find(o=>o.url===t)?.dfid??null}async function dt(e,t,r){let n=ct(r);return En(t,n)??Pn(e,t,n)}var mt=1440*60*1e3,pt="random-userid",N="session",Ae="apps",ft="tab-id";function gt(){return{id:F().replaceAll("-",""),expiry:new Date().getTime()+mt,live:[]}}function V(){let e=P(N);return(!e||ht(e.expiry))&&(e=gt()),y(w,N,e)}function ht(e){return er!==e),y(w,N,t),y(w,Ae,t.live.join())},getLastUsedApps(){return P(Ae)||""},getLatestDfids:lt,getLatestVisits:z,isLive(...e){let t=V();return t===null?!1:e.some(n=>t.live.includes(n))},getSessionObject(){return V()},setSessionObject(e){An(e)?y(w,N,e):console.error("[session][setSessionObject()] session object is not valid")}};s();function Cn(){return{"content-type":"application/json"}}async function _t(e,t={}){return(await fetch(e,{method:"GET",cache:"no-cache",mode:"cors",headers:Cn(),...t})).json()}var re=class{constructor(t){this.zone=t}async add(t,r,{id:n,title:o,price:i},a=1){let u=`${this.url(t)}/cart/${h.getSessionId()||""}`,f=JSON.stringify({amount:a,id:n,title:o,price:i,index:r});return _t(u,{method:"PUT",body:f})}async remove(t,r,n,o=1){return console.warn("Deprecated: remove from cart is no longer supported"),Promise.resolve({status:"registered"})}async clear(t){return console.warn("Deprecated: clear cart is no longer supported"),Promise.resolve({status:"registered"})}async checkout(t){let r=JSON.stringify({session_id:h.getSessionId(),user_id:h.getUserId(),sources:h.getLastUsedApps().split(",")});return _t(`${this.url(t)}/checkout`,{method:"PUT",body:r})}url(t){return`https://${this.zone}-search.doofinder.com/6/${t}/stats`}};s();function Tt(e){return Z("__DF_CDN_PREFIX__",e)}s();function wt(e){return Z("__DF_LAYER_SERVER__",e)}s();s();async function I(e,t,r=!1){if(!document.querySelector(`script[src="${e}"]`)){let n=document.createElement("script");n.src=e,n.async=1,r&&(n.type="module"),t&&(n.onerror=()=>I(t)),document.head.appendChild(n)}}async function bt(e,t){I(e,t,!0)}async function St(e){if(!document.querySelector(`link[rel="modulepreload"][href="${e}"]`)){let t=document.createElement("link");t.setAttribute("rel","modulepreload"),t.setAttribute("href",e),t.onerror=()=>{I(e,null,!0)},document.head.appendChild(t)}}async function xe(e,t){if(!document.querySelector(`link[rel="stylesheet"][href="${e}"]`)){let r=document.createElement("link");r.setAttribute("rel","stylesheet"),r.setAttribute("href",e),t&&(r.onerror=()=>xe(t)),document.head.appendChild(r)}}async function M(e){if(e=(e||"").trim(),!vn(e)){let t=document.createElement("style");t.appendChild(document.createTextNode(e)),document.head.appendChild(t)}}function vn(e){return Array.from(document.head.querySelectorAll("style")).some(t=>t.textContent.trim()===e)}s();s();var $=class{constructor(t={}){t=Object.assign({resolveTimeout:null,resolveValue:!0,rejectTimeout:null,rejectValue:!1},t),this._promise=new Promise((a,u)=>{this.resolve=a,this.reject=u}),this.then=this._promise.then.bind(this._promise),this.catch=this._promise.catch.bind(this._promise),this.finally=this._promise.finally.bind(this._promise),this[Symbol.toStringTag]="Promise";let{resolveTimeout:r,resolveValue:n,rejectTimeout:o,rejectValue:i}=t;r&&setTimeout(()=>this.resolve(n),r),o&&setTimeout(()=>this.reject(i),o)}get promise(){return this._promise}};s();s();var E=new Promise((e,t)=>{document.readyState!="loading"?e():document.addEventListener("DOMContentLoaded",()=>{e()})});var H="quiz";function On(e){return[H,{quiz_id:e.quiz_id}]}function Rn(e,t,r){let n=r.filter(a=>a.name==H&&e.hashid==a.overrides.hashid);if(n.length==0)return console.warn(`Doofinder app ${H} not enabled for SE hashid ${e.hashid}`),null;let o=n.find(a=>a.quiz_id==t.quiz_id);if(!o)return null;let i={quiz_id:t.quiz_id,trigger:t.trigger||o.options.trigger,hashid:o.overrides.hashid,custom_css:o.overrides.custom_css,hooks:t.hooks,account_code:e.account_code,zone:t.zone||o.options.zone||e.zone};return{...e,...i}}function kn(e,t,r){let n=t[H],o=n.vsn?.[e.zone];return{assets:n[e.device],cdn_prefix:t[H].cdn_prefix,cdn_fallback:n.cdn_fallback,vsn:o,appConfig:e,onRegister:function(i){E.then(()=>{let a=i.create(e);typeof r=="function"&&r(a)})}}}var Ce={appName:H,backendAppToScriptApp:On,buildConfig:Rn,buildSettingsConfig:kn};s();s();s();function Pt(e,t={}){let r=document.querySelector(e);return r?Promise.resolve(r):new Promise((n,o)=>{let i=0,a=null,u=t.interval||500,f=t.times||10;a=setInterval(function(){i++r.offsetWidth>0&&r.offsetHeight>0)}async updateQuery(t=""){let r=await this.getElement();r instanceof HTMLInputElement&&(r.value=t)}async focus(){let t=await this.getElement();t instanceof HTMLInputElement&&t.focus()}setCaptureLength(t){this._minCaptureLength=t||Et}async getElement(){if(!(!this._enabled||!this._elementSelector)){if(!this._element)try{this._element=await Pt(this._elementSelector)}catch{this._element=void 0}return this._element}}get enabled(){return this._enabled}set enabled(t){if(this._enabled!==!!t){this._enabled=!!t;let r=document[`${this._enabled?"add":"remove"}EventListener`];this._events.forEach(n=>r(...n))}}get captureSubmit(){return this._handleSubmit}set captureSubmit(t){this._handleSubmit=!!t}get redirection(){if(this._redirection)return{...this._redirection}}set redirection(t){this._redirection=t}setEventBus(t){this._eventBus=t}flushMessages(){if(this._eventsQueue=[...new Map(this._eventsQueue).entries()],this._eventsQueue.length>0){let t=this._eventsQueue.shift();for(;t&&t.length===2;)d("trigger:emit",t),this._eventBus?.emit(...t),t=this._eventsQueue.shift()}else document.activeElement===this._element&&this.notify(At,this.getPayload())}destroy(){this._events.forEach(t=>window.removeEventListener(...t))}shouldHandle(t){let r=this.getElementFromEvent(t);return r?(this._element=r,!0):!1}getPayload(t){let r={source:this._element,originalEvent:t};if(this._element instanceof HTMLInputElement){let n=this._element.value.trim();(n.length>=this._minCaptureLength||t?.type==="keydown"||t?.type==="keyup")&&(r.query=n)}return r}getElementFromEvent(t){if(!t.target||t.target===document||t.target===window)return;let r=t.type==="submit"?"querySelector":"closest",n=t.target[r](this._elementSelector);if(n&&!n.closest("[dfd-hook]"))return n}charLimitReached(t){let r=this.getElementFromEvent(t);return!r||!r.value||t.type!=="keydown"||r.value.length<50||In.includes(t.key)?!1:(t.preventDefault(),t.stopPropagation(),t.stopImmediatePropagation(),!0)}handleClick(t){this.shouldHandle(t)&&(t.preventDefault(),t.stopImmediatePropagation(),this.notify(At,this.getPayload(t)))}handleFocus(t){let r=this.getElementFromEvent(t);r&&this.isButtonLike(r)||this.shouldHandle(t)&&(t.stopImmediatePropagation(),this.notify(Dn,this.getPayload(t)))}handleInput(t){this.shouldHandle(t)&&this.notify(Ln,this.getPayload(t))}handleSubmit(t){this._handleSubmit&&this.shouldHandle(t)&&(t.preventDefault(),t.stopPropagation(),t.stopImmediatePropagation(),this.notify(xt,this.getPayload(t)))}handleKeypress(t){this.charLimitReached(t)||t.key==="Enter"&&this.shouldHandle(t)&&(this._redirection||this._handleSubmit)&&(t.preventDefault(),t.stopPropagation(),t.stopImmediatePropagation(),this._redirection?window.location=this._redirection.url:t.type==="keyup"&&this.notify(xt,this.getPayload(t)))}isButtonLike(t){let{tagName:r,role:n}=t;return r==="BUTTON"||n==="button"}notify(t,r){this._eventBus?this._eventBus.emit(t,r):this._eventsQueue.push([t,r]),d("[trigger]",this._eventBus?"[emit]":"[queue]",t,r)}};var B="layer";function Mn(e){return[B,{}]}function Un(e,t,r){let n=r.find(u=>u.name==B);if(!n)return console.error(`Doofinder app '${B}' not enabled`),null;let o=n.overrides.autoload,i="chat"in n.options?{chat:n.options.chat}:{},a={trigger:t.trigger||n.options.trigger,url_hash:t.url_hash||t.url_hash===void 0&&n.options.url_hash,hooks:t.hooks,hidePrices:typeof e.hidePrices=="boolean"?e.hidePrices:!1,params:t.params,search_query_retention:n.overrides.search_query_retention,sort:t.sort,layout:n.overrides.layout,custom_css:n.overrides.custom_css[e.device],custom_properties:n.overrides.custom_properties[e.device],autoload:o&&o[e.device],type:n.type,exportResultsData:t.exportResultsData,zone:t.zone||n.options.zone||e.zone,...i};return{...e,...a}}function Nn(e,t,r){let n=t[B],o=Hn(n,e.device,e.layout);e=ve(e);let i=e.custom_properties?.join(` `),a=n.vsn?.[e.zone];return{assets:o,cdn_prefix:n.cdn_prefix,cdn_fallback:n.cdn_fallback,vsn:a,appConfig:e,onRegister:function(u){E.then(()=>{let f=u.create(e);M(`#${f.mount.id} { ${i||""} }`),typeof r=="function"&&r(f)})}}}function ve(e){return e.trigger=$n(e.trigger,e.autoload),e.urlHash=e.url_hash||!1,e.searchQueryRetention=e.search_query_retention,e.layerType=e.layerType||"search",e.installationId=e.store,e}function $n(e,t){let r=new ne(e);return r.enabled=!t||t.trigger,r}function Hn(e,t,r){return t==="mobile"?e.mobile[r]||e.mobile.default:e.desktop[r]}var Oe={appName:B,backendAppToScriptApp:Mn,buildConfig:Un,buildSettingsConfig:Nn};s();s();s();s();var Ct=new Set(` aa ab ae af ak am an ar as av ay az ba be bg bh bi bm bn bo br bs ca ce ch co cr cs cu cv cy da de dv dz ee el en eo es et eu fa ff fi fj fo fr fy ga gd gl gn gu gv ha he hi ho hr ht hu hy hz ia id ie ig ii ik io is it iu ja jv ka kg ki kj kk kl km kn ko kr ks ku kv kw ky la lb lg li ln lo lt lu lv mg mh mi mk ml mn mr ms mt my na nb nd ne ng nl nn no nr nv ny oc oj om or os pa pi pl pt ps qu rm rn ro ru rw sa sc sd se sg si sk sl sm sn so sq sr ss st su sv sw ta te tg th ti tk tl tn to tr ts tt tw ty ug uk ur uz ve vi vo wa wo xh yi yo za zh zu `.trim().split(/\s+/));function kt(e,t){let{match_type:r,value:n}=e;switch(r){case"contains":return t.includes(n);case"equals":return t===n;case"regex":return(n instanceof RegExp?n:new RegExp(n)).test(t);case"starts_with":return t.startsWith(n);default:return!1}}function Dt(e,t){if(!(!e||!Array.isArray(e)))for(let r of e){if(!r||!r.value||r.value==="")continue;let n=t.find(o=>kt(r,o));if(n!==void 0)return{pattern:r,url:n}}}function Re(e,t){return e.filter(r=>r&&r.value&&r.value!=="").some(r=>(d("[checkout][anyUrlMatches] Checking url pattern for",r),t.some(n=>kt(r,n))))}function Gn(e,t){return!t||!Array.isArray(t)||t.length===0?!1:t.some(r=>e.includes(r))}function jn(e){let[,,t,r]=e.match(/(\/?)(.+)\1([a-z]*)/i);r=r||"g";let n=new RegExp(t,r);return d("pattern ",t,"flags",r,"regexp",n),n}function oe(){return window.location.origin+window.location.pathname}function G(e,t,r){return t.filter(n=>n.hashid===e).filter(n=>!Gn(r,n.excluded_urls)).map(n=>{let o=r.match(jn(n.pattern));return o?{...n,match:o}:null}).find(n=>n!==null)}var Yn=/^([a-z]{2,3})(?:[_-][a-zA-Z]{2,4})?$/i,vt=new Set(["home","inicio","accueil","inizio","startseite"]),Ot=new Set(["index.html","index.php"]),Fn=new RegExp("/p/|/prod/|/product/|/products/"),qn=new RegExp("/(?:c|cat|category|collection|collections|product-category)/([a-z0-9-]+)/?$","i");function Lt(e){let t=e.toLowerCase().replace(/\/+$/,"")||"/";if(t==="/")return!0;let r=t.split("/").filter(Boolean);return r.length===1?Ot.has(r[0])||vt.has(r[0])||Rt(r[0]):r.length===2?Rt(r[0])&&(Ot.has(r[1])||vt.has(r[1])):!1}function Rt(e){let t=e.match(Yn);return t?Ct.has(t[1].toLowerCase()):!1}function It(e){return Fn.test(e)}function ie(e){return e.match(qn)?.[1]?.replace(/-/g," ")||null}function Mt(e){let{hashid:t,url_patterns:r}=e,n=oe();d("[category merchandising] finding any matching URL pattern configuration for hashid: ",t," url patterns: ",r," URL: ",n," original URL: ",window.location.href);try{let o=G(t,r,n);return d("[category merchandising] URL Pattern configuration found ",o),!!o}catch(o){return d("[category merchandising] error when matching URL Pattern. Error: ",o),!1}}var U="category_merchandising";function zn(e){return[U,{}]}function Ut(e,t){let r=e.apps?.find(i=>i.name===U),o=t.find(([i])=>i===U)?.[1]?.url_patterns||r?.options?.url_patterns;return o?.length?o:null}function Vn(e,t,r){let n=r.find(a=>a.name==U);if(!n)return console.error(`Doofinder app '${U}' not enabled`),null;let o=n.devices[e.device],i={insertion_point:t.insertion_point||o.options.insertion_point,url_hash:t.url_hash||!1,search:t.search||n.options.search,sort:t.sort||{},hooks:t.hooks,custom_css:o.overrides.custom_css,custom_properties:o.overrides.custom_properties,autoload:o.overrides.autoload,url_patterns:t.url_patterns||n.options.url_patterns,type:"category_pages",zone:t.zone||n.options.zone||e.zone};return{...e,...i}}function Bn(e,t,r){if(!Mt(e))return null;let n=t[U],o=n.vsn?.[e.zone],i=n[e.device??"desktop"];e.layerType="category_pages",e=ve(e);let a=e.custom_properties?.join(` `);return{assets:i,cdn_prefix:n.cdn_prefix,cdn_fallback:n.cdn_fallback,vsn:o,appConfig:e,onRegister:function(u){E.then(()=>{if(document.querySelector(e.insertion_point)){let f=u.create(e);M(`#${f.mount.id} { ${a||""} }`),typeof r=="function"&&r(f)}else d("Category merchandising: insertion point not found. Insertion point: ",e.insertion_point)})}}}var ke={appName:U,backendAppToScriptApp:zn,buildConfig:Vn,buildSettingsConfig:Bn};s();s();var De=class{#n;#t;#r;#e;constructor(){this.#t=new Set,this.#r=new Set,this.#e=null,d("[DOMObserver] installing observer"),this.#n=new MutationObserver(t=>{this.#a(),this.#c(t),this.#s()}),this.#s()}observeDOM(t,r={}){return this.#i(this.#t,t,r),this}observeURL(t,r={}){return this.#i(this.#r,t,r),this}disconnect(t){return this.#t.delete(t),this.#r.delete(t),this}#i(t,r,n={}){n.immediate&&this.#o(r,{reason:"immediate execution",changes:null,previousUrl:this.#e,currentUrl:window.location.href.split("#")[0]}),t.add(r)}#s(){return this.#n.observe(document,{childList:!0,subtree:!0}),this}#a(){return this.#n.disconnect(),this}#c(t){d("[DOMObserver] DOM change observed");let r=window.location.href.split("#")[0];for(let n of this.#t)this.#o(n,{reason:"DOM changed",changes:t,previousUrl:this.#e,currentUrl:r});if(this.#e!==r){d("[DOMObserver] URL change observed");for(let n of this.#r)this.#o(n,{reason:"URL changed",changes:t,previousUrl:this.#e,currentUrl:r});this.#e=r}}#o(t,r){try{t(r)}catch(n){console.error(`[DOMObserver] ${n}`)}}},O=new De;s();s();function Nt(e){return`https://${e}-admin.doofinder.com`}s();function K(e){return`https://${e}-api.doofinder.com`}var Kn=20,Jn=2e3,Wn=3,Qn=750;async function $t(e){e.registerCheckouts&&O.observeURL(t=>Xn(e))}var Ie=()=>[window.location.pathname,window.location.href];async function Xn(e){Gt(e)?(d("[checkout][logic] Detected checkout confirmation page"),eo(e)):!e.sales_api_integration&&se(e)&&(d("[checkout][logic] Detected cart page"),Zn(e))}async function Zn(e){let t=e.hashid,{pattern:r,url:n}=Ue(e)||{},o=r?.checkout_css_selector;if(o==null){let a=await A(`${Nt(e.zone)}/api/introspection/checkout`,{html_content:Ht(document.documentElement.outerHTML),hashid:t,url:n});if(!a.ok||(a=await a.json(),o=a.checkout_html?.products,!o))return}if(o===""){d("[checkout] The provided CSS selector is an empty string");return}let i=await Le(e,o);if(!i){d("[checkout] Couldn't detect cart HTML");return}d("[checkout] Registering cart checkout"),A(`${K(e.zone)}/api/v2/stats/carts`,{hashid:t,session_id:h.getSessionId(),user_id:h.getUserId(),checkout_html:i,url:n,currency:e.currency})}async function Le(e,t,r={}){let{maxRetries:n=Kn,minStable:o=Wn,retryDelay:i=Jn,stabilityDelay:a=Qn}=r;if(r.startTime||=performance.now(),r.retries||=0,r.stableCount||=0,r.lastHTML||="",n<=r.retries)return d("[checkout][stable html] HTML did not stabilize after #{options.retries} retries"),null;r.retries===0&&d(`[checkout][stable html] Starting stable HTML detection in '${t}'`),r.retries++;let u=document.querySelector(t);if(!u)return d(`[checkout][stable html] Cannot find element in DOM with CSS selector ${t} after ${r.retries} retries`),new Promise(p=>{setTimeout(async()=>{let T=await Le(e,t,r);p(T)},i)});let f=Ht(to(u.outerHTML));if(f===r.lastHTML){if(o<=r.stableCount){let p=performance.now()-r.startTime;return d(`[checkout][stable html] Stable detection took ${p.toFixed(2)} ms`),f}r.stableCount++,d(`[checkout][stable html] Found stable HTML (${r.stableCount}/${o}) in '${t}' after ${r.retries} retries`)}else d(`[checkout][stable html] Found new HTML in '${t}' after ${r.retries} retries`),r.stableCount=0,r.lastHTML=f;return new Promise(p=>{setTimeout(async()=>{let T=await Le(e,t,r);p(T)},a)})}async function eo(e){d("[checkout] registering checkout");let t=e.hashid;A(`${K(e.zone)}/api/v2/stats/sales`,{hashid:t,session_id:h.getSessionId(),user_id:h.getUserId(),has_init:h.isLive("layer")}),document.dispatchEvent(new CustomEvent("doofinder.layer.checkout",{detail:{tag:{_hashid:t},url:window.location.href}}));let r="recommendations-widget-last-clicked-item",n=P(r,window.sessionStorage);n&&(document.dispatchEvent(new CustomEvent("doofinder.recommendations-widget.checkout",{detail:n})),st(r,window.sessionStorage)),yt()}function Ht(e){let t=new TextEncoder().encode(e),r=Array.from(t,n=>String.fromCharCode(n)).join("");return btoa(r)}function to(e){return e.replace(//g,"")}function ro(e){try{return new RegExp(e.replaceAll("?","\\?").replaceAll(".","\\.").replaceAll("*",".*"))}catch{return new RegExp(e)}}function Me(e){return e.map(t=>t.match_type==="regex"?{...t,value:ro(t.value)}:t)}function Ue(e){let t=Me(e.checkout_summary_urls||[]);return Dt(t,Ie())}function Gt(e,t=Ie()){let r=Me(e.checkout_confirmation_urls||[]);return Re(r,t)}function se(e,t=Ie()){let r=Me(e.checkout_summary_urls||[]);return Re(r,t)}function jt(e,t=window.location.href){return Gt(e,[t])||se(e,[t])}s();function Yt(e={}){let{checkout_css_selector:t,checkout_cart_item_selector:r}=e;try{let n=document.querySelector(t);if(!n)return d(`[cart] Couldn't find cart element, selector: ${t}`),null;let o=n.querySelectorAll(r);return o.length===0?(d(`[cart] Couldn't find any items, selector: ${r}`),null):[...o].map(i=>no(i,e))}catch(n){return console.error(`[Doofinder] [cart] ${n}`),null}}function no(e,t){return{id:oo(e),title:io(e,t),quantity:ao(e,t),price:so(e,t)}}function oo(e){let t=e.querySelector("[data-product-id]");return t?t.getAttribute("data-product-id"):null}function io(e,{checkout_item_title_selector:t}){let r=e.querySelector(t);return r?Ne(r.textContent):(d(`[cart] Couldn't detect cart item's title, selector: ${t}`),null)}function so(e,{checkout_item_price_selector:t}){let r=e.querySelector(t);return r?Ne(r.textContent):(d(`[cart] Couldn't detect cart item's price, selector: ${t}`),null)}function ao(e,{checkout_item_quantity_selector:t}){let r=e.querySelector(t);return r?["INPUT","SELECT"].includes(r.tagName)?r.value:Ne(r.textContent):(d(`[cart] Couldn't detect cart item's quantity, selector: ${t}`),null)}function Ne(e){return e=e.replace(/\s+/g," "),e=e.trim(),e}s();s();function Ft(){let e=window.dfCategoryName;return typeof e!="string"||!e.trim()?null:e.trim()}s();s();function qt(){try{return document.querySelector('meta[property="og:title"]')?.content?.trim()||null}catch{return null}}function zt({patterns:e,hashid:t}){if(!e?.length)return null;let r=G(t,e,oe());if(!r)return null;let n=r.params?.search?.filter||{},o=Object.values(n).flat().find(a=>a&&(a!=="{{value}}"||r.match?.groups?.value)),i=null;return o==="{{value}}"?i=r.match?.groups?.value:i=o||null,i||qt()||r.value||null}s();function Vt(){return co()||uo()||lo()||fo()}function co(){if(!window.dataLayer?.length)return null;let e=window.dataLayer.find(t=>t?.event==="view_item_list");return e&&(e.item_list_name||e.ecommerce?.item_list_name||e.ecommerce?.items?.[0]?.item_category)||null}function uo(){return window.utag_data?.category_name||window.utag_data?.category||null}function lo(){return window.digitalData?.page?.category?.primaryCategory||null}function fo(){if(!window.dataLayer?.length)return null;for(let e of window.dataLayer){let t=e?.category_name||e?.categoryName||e?.pageName;if(t)return t}return null}s();var mo={shopify:".collection-hero__title, h1.section-header__title, h1.h1, h1",woocommerce:".woocommerce-products-header__title, .page-title",wordpress:".woocommerce-products-header__title, .page-title",prestashop:"#js-product-list-header h1, h1.h1",magento:".page-title span, .page-title",magento2:".page-title span, .page-title"};function Bt(e){let t=e||po(),r=mo[t];return r&&document.querySelector(r)?.innerText?.trim()||null}function po(){let e=document.body;return e?e.classList.contains("tax-product_cat")?"woocommerce":e.id==="category"?"prestashop":e.classList.contains("catalog-category-view")?"magento2":window.ShopifyAnalytics?.meta?.page?.pageType==="collection"?"shopify":null:null}s();function Kt(){let e=document.querySelectorAll('script[type="application/ld+json"]');for(let t of e){let r;try{r=JSON.parse(t.innerText)}catch{continue}let n=r["@graph"]||(Array.isArray(r)?r:[r]);for(let o of n){let i=go(o);if(i)return i}}return null}function go(e){let t=e["@type"];return t==="CollectionPage"||t==="ItemList"?e.name||null:t==="BreadcrumbList"&&e.itemListElement?.length>0&&e.itemListElement[e.itemListElement.length-1]?.item?.name||null}s();function Jt(){return ie(window.location.pathname)}s();function Wt(){return ho()||_o()}function ho(){let e=document.querySelector('.breadcrumb, .breadcrumbs, [aria-label="breadcrumb"]');if(!e)return null;let t=e.querySelectorAll("li, a, span");return t.length===0?null:t[t.length-1].innerText?.trim()||null}var yo=5;function _o(){return document.querySelectorAll(".product-card, .product-item, .grid-item, .item-card").lengthzt({patterns:t,hashid:r})],["data_layer",Vt],["cms",()=>Bt(e)],["schema",Kt],["url",Jt],["dom",Wt]].map(([i,a])=>{try{let u=a();if(!u)return null;let f={isCategory:!0,categoryName:u,strategyUsed:i};return d(`[CategoryDetector] Strategy "${i}" returned:`,f),f}catch(u){return console.error(`[CategoryDetector] Error in strategy "${i}":`,u),null}}).filter(Boolean);return d("[CategoryDetector] All strategy results:",o),o}catch(n){return console.error("[CategoryDetector] detectCategory threw unexpectedly",n),[]}}s();var c=Object.freeze({HOME:"home",CATEGORY:"category",PRODUCT:"product",CART:"cart",OTHER:"other"});var J="recommendations_widgets",To="recommendations";function wo(e){return[J,{}]}function bo(e,t,r){let n=r.find(a=>a.name==J);if(!n)return console.error(`Doofinder app '${J}' not enabled`),null;let o=Ro(e,t,n),i=Co(o);return{...o,custom_css:n.overrides.custom_css,widgets:[...Oo(i,o),...vo(o)]}}function So(e,t,r){if(e.widgets.length===0)return null;let n=t[J];return{assets:n[e.device],cdn_prefix:n.cdn_prefix,vsn:n.vsn,appConfig:e,onRegister:function(o){E.then(async()=>{let i=null,a=!1,u=[];e.pageType===c.CATEGORY&&(u=ae({platform:e.platform_integration_type,categoryMerchandisingPatterns:e.categoryMerchandisingPatterns,hashid:e.hashid}));for(let f of e.widgets){if(!f.hashids.includes(e.hashid))continue;if(!a){if(!e.sales_api_integration&&se(e)){let{pattern:R}=Ue(e)||{};i=await Po({...R,...e})}a=!0}let{_widgets:p,...T}=e;o.create({...T,cartItems:i,categoryContext:u,widget:f})}})}}}async function Po(e){let t=Yt(e);return t?Eo(t,e):null}async function Eo(e,t){return Promise.all(e.map(r=>Ao(r,t)))}async function Ao(e,t){let r=xo(e,t);if(r===null)return e;let{hashid:n,zone:o}=t,i=`${te(o)}/6/${n}/_rules`,a=await A(i,r);if(!a.ok)return e;let u=await a.json();if(u.results.length===0)return e;let f=u.results.find(p=>p.dfid);return f!==null&&(e.dfid=f.dfid,d(`[recommendations] DFID found for cart item, title: ${e.title}, dfid: ${f.dfid}`)),e}function xo(e,t){let r={indices:t.productIndices||[],rules:[]};return e.id!==null&&r.rules.push({id:{tree:[e.id]}}),e.title!==null&&r.rules.push({title:{tree:[e.title]}}),0{t()})}var $e={appName:J,backendAppToScriptApp:wo,buildConfig:bo,buildSettingsConfig:So};function Co({pageTypeMappings:e}){let t=window.location.href;return e.reduce((r,n)=>{let{match_conditions:o}=n;return o.length===0?r:o.some(i=>ko(t,i))?[n,...r]:r},[])}function vo({widgets:e}){return e.filter(t=>!t.page_type_id)}function Oo(e,{widgets:t,overridePageTypeCheck:r}){if(r)return t;let n=e.map(o=>o.id);return t.filter(o=>n.includes(o.page_type_id))}function Ro(e,t,r){let n=Do(t);if(n.length>0){let i=n.map(a=>{let u=r.widgets.find(f=>f.widget_id===a.widget_id);if(u)return{...a,id:a.widget_id,name:a.widget_name,page_type_id:u.page_type_id,insertion_point:a.insertion_point||u.options.insertion_point,insertion_method:a.insertion_method||u.options.insertion_method,hashids:u.overrides.hashids};console.error(`Custom recommendations widget '${a.widget_id}' does not exist`)}).filter(a=>!!a);return{...e,widgets:[...i],overridePageTypeCheck:!0}}let o=r.widgets.map(i=>({id:i.widget_id,name:i.widget_name,page_type_id:i.page_type_id,insertion_point:i.options.insertion_point,insertion_method:i.options.insertion_method,hashids:i.overrides.hashids}));return{...e,widgets:o,overridePageTypeCheck:!1}}function ko(e,{match_type:t,value:r}){switch(t){case"equals":return Qt(e)==Qt(r);case"contains":return e.includes(r);case"starts_with":return e.startsWith(r);case"regex":try{return new RegExp(r,"i").test(e)}catch{return!1}default:return!1}}function Qt(e){try{let t=new URL(e);return t.origin+t.pathname}catch{return e}}function Do(e){return e?Array.isArray(e)?[...e]:Object.hasOwn(e,"widget_id")?[{...e}]:[]:[]}s();var W="product_ai_assistant",Lo="layer";function Io(e){return[W,{chat_id:e.chat_id}]}function Mo(e){return e.name===W}function Uo(e,t,r){let n=r.find(i=>Mo(i)&&i.chat_id==t.chat_id),o=t.params;return n?{...e,chat_id:t.chat_id,id:t.id||n.options?.id,options:{...n.options||{},...t.options||{}},override_params:o}:null}function No(e,t,r){let n=t[W],o=n[e.device];e=$o(e);let i=n.vsn?.[e.zone];return{assets:o,cdn_prefix:n.cdn_prefix,cdn_fallback:n.cdn_fallback,vsn:i,appConfig:e,onRegister:function(a){E.then(()=>{let u=a.create(e);typeof r=="function"&&r(u)})}}}function $o(e){return e.installation_id=e.store,e}function Zt(e,t=e){let n=t.find(([o])=>o===Lo)?.[1]?.params;return!n||Object.keys(n).length===0?e:e.map(([o,i])=>o===W&&!i.params?[o,{...i,params:n}]:[o,i])}var He={appName:W,backendAppToScriptApp:Io,buildConfig:Uo,buildSettingsConfig:No};s();var ce="product_ai_widget";function Ho(e){return[ce,{chat_id:e.chat_id}]}function Go(e){return e.name===ce}function jo(e,t,r){let n=r.find(o=>Go(o)&&o.chat_id==t.chat_id);return n&&e.pageType===c.PRODUCT?{...e,chat_id:t.chat_id,id:t.id||n.options?.id,options:{...n.options||{},...t.options||{}}}:null}function Yo(e,t,r){let n=t[ce];return{assets:n[e.device],cdn_prefix:n.cdn_prefix,cdn_fallback:n.cdn_fallback,vsn:n.vsn,versionInPath:!1,appConfig:e,onRegister:function(i){E.then(()=>{let a=i.create(e);typeof r=="function"&&r(a)})}}}var Ge={appName:ce,backendAppToScriptApp:Ho,buildConfig:jo,buildSettingsConfig:Yo};var Fo=Oe.appName,er=ke.appName,qo=Ce.appName,zo=$e.appName,Vo=He.appName,Bo=Ge.appName,ue={LAYER:Fo,QUIZ:qo,RECOMMENDATIONS_WIDGETS:zo,PRODUCT_AI_ASSISTANT:Vo,PRODUCT_AI_WIDGET:Bo},tr=[];function rr(e){return e.reduce(function(t,r){return t[r]=new $,t},{})}function nr(e){return async function(t,r){if(!e[t])throw new Error(`unknown "${t}" app!`);r(await e[t])}}function or(e,t){document.dispatchEvent(new CustomEvent("doofinder.register",{detail:{name:e,entrypoint:t}}))}function j(e){return[ke,Oe,Ce,$e,He,Ge].find(t=>t.appName===e)}s();var Y=".min",S="https://cdn.doofinder.com";function Ko(e){return"0"}function ur(e){return`${S}/live_view_portal/${Ko(e)}/live_view_portal${Y}.js`}var x=`/js/dflayer${Y}.js`,C="/css/2/common.css",ir={js:[`/quiz${Y}.js`],css:["/quiz.css"]},sr={mjs:[`/recommendations${Y}.js`],css:["/recommendations.css"]},ar={js:[`/product-ai-assistant${Y}.js`],css:["/product-ai-assistant.css"]},cr={js:[`/product-ai-widget${Y}.js`],css:["/product-ai-widget.css"]},le=typeof l>"u"?{ap1:"0",eu1:"0",us1:"0","eu1-b":"0"}:l,Jo="0.2.30",Wo="0.4.8",lr=[{vsn:"1.0",layer:{cdn_prefix:S+"/livelayer",cdn_fallback:S+"/livelayer/1",desktop:{Fullscreen:{js:[x],css:[C,"/css/2/fullscreen.css"]},AIFullscreen:{js:[x],css:[C,"/css/2/ai_fullscreen.css"]},Embedded:{js:[x],css:[C,"/css/2/embedded.css"]},Floating:{js:[x],css:[C,"/css/2/classic.css"]},FloatingEmbedded:{js:[x],css:[C,"/css/2/classic.css","/css/2/embedded.css"]}},mobile:{default:{js:[x],css:[C,"/css/2/mobile.css"]},AIFullscreen:{js:[x],css:[C,"/css/2/ai_mobile.css"]}},vsn:le},category_merchandising:{cdn_prefix:S+"/livelayer",cdn_fallback:S+"/livelayer/1",desktop:{js:[x],css:[C,"/css/2/embedded.css"]},mobile:{js:[x],css:[C,"/css/2/mobile_embedded.css"]},vsn:le},quiz:{cdn_prefix:S+"/quiz",cdn_fallback:S+"/quiz",desktop:ir,mobile:ir,vsn:le},recommendations_widgets:{cdn_prefix:S+"/recommendations-v2",desktop:sr,mobile:sr,vsn:Wo},product_ai_assistant:{cdn_prefix:S+"/product-ai-assistant",cdn_fallback:S+"/product-ai-assistant",desktop:ar,mobile:ar,vsn:le},product_ai_widget:{cdn_prefix:S+"/chat/product-ai-widget",cdn_fallback:S+"/chat/product-ai-widget",desktop:cr,mobile:cr,vsn:Jo}}];s();function dr(e,t,r=""){let n=Object.assign({},X("__DF_APPS_LOADER_CDN_PREFIXES__"));return n&&n[e]?n[e]:`${t}${r!=""?"/":""}${r}`}function fr(e,t,r,n,o,i){let a=lr[0],u=j(r);if(!u)return console.error(`Doofinder app '${r}' not found`),null;let f=u.buildConfig(t,n,o.apps);if(!f)return null;let p=u.buildSettingsConfig(f,a,i);if(!p)return null;let T=u.appName==er?"layer":u.appName;return e(T,p.onRegister),Qo(u.appName,p.assets,p.cdn_prefix,p.vsn,p.appConfig.custom_css,p.cdn_fallback,{versionInPath:p.versionInPath}),p.appConfig}async function Qo(e,t,r,n,o,i,a={}){let u=a.versionInPath===!1?"":n,f=dr(e,r,u),p=n?`?v=${n}`:"";je(f,p,i,I,t.js),je(f,p,i,bt,t.mjs),je(f,p,i,xe,t.css),o&&Array.isArray(o)?o.forEach(M):o&&M(o)}async function je(e,t,r,n,o){o&&o.forEach(i=>n(`${e}${i}${t||""}`,r?`${r}${i}${t}`:void 0))}s();async function mr(e,t){let r=Xo(e,t),n=await fetch(r);if(!n.ok)throw new Error(`HTTP error! Status: ${n.status}`);return await n.json()}function Xo(e,t){let r=X("__DF_STORE_CONFIG__"),n="",o={eu1:"eu-west-1.",us1:"us-east-1.",ap1:"ap-southeast-1."};switch(t=Object.hasOwn(o,t)?t:"eu1",r){case"provisional-bucket":n=`provisional-${t}-df-store-config-files`;break;case"production-bucket":n+=`${t}-df-store-config-files`;break;case"test":return`http://appsloader/store-configs/${t}/${e}.json`;case"local-directory":break;default:n=`${t}-df-store-config-files`}return`https://${n}.s3.${o[t]}amazonaws.com/${e}.json`}s();s();function Ye(e){let t=e?.replaceAll("_","-").trim().split("-")||[];function r(n){return n?`-${n.toUpperCase()}`:""}if(t.length<3){let[n,o]=t;return`${n?.toLowerCase()}${r(o)}`}else{let[n,o,i]=t;return`${n?.toLowerCase()}-${o.toUpperCase()}${r(i)}`}}function Fe(e){return e?.trim().toUpperCase()}function pr(e,t){let{currency:r,hashid:n}=e,o=e.language||document.documentElement.getAttribute("lang"),i=!!o,a=!!r,u=!!n;return i&&!a&&!u?gr(o,t):!i&&a&&!u?fe(r,t):i&&a&&!u?hr(o,r,t):!i&&!a&&u?ei(n,t):i&&!a&&u?ti(o,n,t):!i&&a&&u?Zo(n,r,t):i&&a&&u?ri(o,r,n,t):de(t)}function de(e){return{language:e.defaults.language,currency:e.defaults.currency,hashid:e.defaults.hashid}}function fe(e,t){return{language:t.defaults.language,currency:Fe(e),hashid:t.defaults.hashid}}function gr(e,t){let r=Ye(e),n=t.search_engines;if(n[r]||(r=yr(n,r)),!r||!n[r])return de(t);let o=Object.keys(n[r]);if(!o.length)return de(t);let i=o[0],a=n[r][i];return{language:r,currency:i,hashid:a}}function hr(e,t,r){let n=Ye(e),o=r.search_engines;if(o[n]||(n=yr(o,n)),!n||!o[n])return fe(t,r);let i=Fe(t),a=Object.keys(o[n]),u=i;if(a.includes(i)||(u=a[0]),!u)return fe(t,r);let f=o[n][u];return{language:n,currency:i,hashid:f}}function Zo(e,t,r){return me(e,r,t)||fe(t,r)}function ei(e,t){return me(e,t)||de(t)}function ti(e,t,r){return me(t,r)||gr(e,r)}function ri(e,t,r,n){return me(r,n,t)||hr(e,t,n)}function me(e,t,r=null){let n=oi(e,t.search_engines);return n?{language:n.language,currency:r||n.currency,hashid:e}:null}function yr(e,t){let[r]=t.split("-");if(e[r])return r;let n=Object.keys(e).filter(o=>ni(o,r)).shift();return e[n]?n:null}function ni(e,t){let[r]=e.split("-");return r===t}function oi(e,t){for(let[r,n]of Object.entries(t))for(let[o,i]of Object.entries(n))if(i===e)return{language:r,currency:o};return null}s();async function _r(e){if(!e.hashid){d("[loader]","No hashid. Skipping register visit");return}d("[loader]","[loader]","Registering visit",window.location.href);let t=await e.dfidPromise,r={session_id:h.getSessionId(),user_id:h.getUserId(),store:e.store,hashid:e.hashid,url:window.location.href,page_type:e.pageType};t&&(r.dfid=t),A(`${K(e.zone)}/api/v2/stats/visit`,r)}s();var Tr=new Set;async function wr(e){e.ga4_integration&&O.observeURL(ii,{immediate:!0})}async function ii({currentUrl:e}){Tr.has(e)||(d("[ga4Integration] integrating GA4"),ai(),Tr.add(e))}function si(){typeof window.gtag!="function"&&(window.gtag=function(e,t,r){typeof window.dataLayer>"u"?d("[ga4Integration][verification] Bad configuration for analytics"):e==="event"&&typeof t=="string"&&typeof r=="object"?window.dataLayer.push({event:t,...r}):window.dataLayer.push(arguments)})}function ai(){si(),document.addEventListener("doofinder.layer.search",e=>{window.search_timer&&clearTimeout(window.search_timer),window.search_timer=setTimeout(()=>{d("[ga4Integration] pushing GA4 doofinder_search"),window.gtag("event","doofinder_search",{hashid:e.detail.tag._hashid,search_term:e.detail.query}),window.search_timer=null},1e3)}),document.addEventListener("doofinder.layer.itemClick",e=>{d("[ga4Integration] pushing GA4 doofinder_view_item"),window.gtag("event","doofinder_view_item",{hashid:e.detail.tag._hashid,url:e.detail.url})}),document.addEventListener("doofinder.layer.checkout",e=>{d("[ga4Integration] pushing GA4 doofinder_checkout"),window.gtag("event","doofinder_checkout",{hashid:e.detail.tag._hashid,url:e.detail.url})}),window.addEventListener("doofinder.recommendations-widget.click",e=>{d("[ga4Integration] pushing GA4 doofinder_recos_click"),window.gtag("event","doofinder_recos_click",{hashid:e.detail.tag.options.hashid,product_id:e.detail.item.id,carousel_name:e.detail.tag.options.widget.name,url:e.detail.currentUrl})}),document.addEventListener("doofinder.recommendations-widget.checkout",e=>{d("[ga4Integration] pushing GA4 doofinder_recos_checkout"),window.gtag("event","doofinder_recos_checkout",{hashid:e.detail.hashid,carousel_name:e.detail.carouselName,url:e.detail.url})})}s();s();var br="plugins",Sr="integrations",Pr="contextual-prices";function Q(e,t){if(!t)return null;let r=`${S}/${e}/${t}.js`;d("[loader]",`Loading ${t} script:`,r),I(r)}var Er="previous-kv-userid",Ar="previous-kv-email";function xr(e){if(Array.isArray(e.integrations_list))for(let t of e.integrations_list)t==="klaviyo"&&window.addEventListener("load",ci)}function ci(){let e={getUserId(){return P(Er)},setUserId(t){y(L,Er,t)},getUserEmail(){return P(Ar)},setUserEmail(t){y(L,Ar,t)}};Doofinder.Integrations.Klaviyo||(Doofinder.Integrations.Klaviyo={}),Object.assign(Doofinder.Integrations.Klaviyo,e),Q(Sr,"klaviyo")}s();function Cr(e){let t=e.platform_integration_type,r=["shoper","shopify","bigcommerce","shopware_app"],n=["shopify","bigcommerce","shopware_app"];r.includes(t)&&(n.includes(t)&&Q(Pr,"contextual-prices"),Q(br,t))}s();function vr(e,t,r){let{settings:n,apps:o}=e;switch(n.platform_integration_type){case"bigcommerce":ui(t,r,o);break;case"shoper":di(t);break;case"shopify":li(t,r,o);break;case"shopware_app":fi(t,n);break;default:break}}function ui(e,t,r){let n=window.dfCurrencyCode,o=window.dfGroupId;e.currency=n,e.platformAppKey="o2z5he57g3e3jtrvkoik27gd8besgfu",o&&(e.priceName=`${n}_${o}`,Or(t,r,[o])),d("[set_platform_config]","Setting platform config for BigCommerce",{currencyCode:n,groupId:o})}function li(e,t,r){let n=window.Shopify?.currency?.active,o=window.Shopify?.locale,i=window.dfB2BCustomer,a=window.dfB2BLocationId,u=i&&a?a:window.Shopify?.country;e.currency=n,e.language=o,u&&(e.priceName=u,Or(t,r,[u])),d("[set_platform_config]","Setting platform config for Shopify",{currency:n,context:u,language:o})}function di(e){typeof useStorefront=="function"?(d("[set_platform_config]","Setting platform config for Shoper with useStorefront"),useStorefront(t=>{let n=t.getApiSync("StorefrontSettingsApi").getLocales();e.currency=n.currency})):(d("[set_platform_config]","Setting platform config for Shoper with Shop.values.currency"),e.currency=Shop.values.currency)}function fi(e,t){e.platformAppKey=t.platform_app_key,d("[set_platform_config]","Setting platform config for Shopware",{accessKey:t.platform_app_key})}function Or(e,t,r){let n={exclude:{not_published_in:r}},o={"":n,product:n},i=Object.values(ue);for(let a of t)i.includes(a.name)&&mi(e,a,o)}function mi(e,t,r){let n=e.filter(([u])=>u===t.name);if(n.length>0){n.forEach(([,u])=>{u.params={...u.params,...r}});return}let o=j(t.name);if(!o)return;let[i,a]=o.backendAppToScriptApp(t);a.params={...a.params,...r},e.push([i,a])}s();var Ir=ln(Lr());function qe(){let e=navigator.userAgent;if(/CrKey\/\d+(\.\d+)+/.test(e))return"desktop";let{isPhone:r}=(0,Ir.default)(e);return r?"mobile":"desktop"}s();function Mr(e){return e.map(t=>{let r=j(t.name);return r?r.backendAppToScriptApp(t):(console.error(`Doofinder app '${t.name}' not found`),!1)}).filter(t=>t)}s();s();function Ur({hashid:e,patterns:t}){if(!t?.length)return null;let r=window.location.origin+window.location.pathname;return G(e,t,r)?c.CATEGORY:null}s();var _i=["ecommerce.ecomm_pagetype","google_tag_params.ecomm_pagetype","microsoft_ads_object.ecomm_pagetype","ecomm_pagetype","2.ecomm_pagetype","context.page.controller_name","navigation.semanticRoute","semanticRoute","shoptet.pageType","ecommerce.page_type","page.page_type","page_type","pageType","page.page_category","page_category","pageCategory","page.type","content.pageType","content_type","2.content_type","viewContentData.content_type","ecommerce.item_list_id","ecommerce.item_list_name","2.item_list_id","2.item_list_name","2.page_type","2.content_group"],Ti={home:c.HOME,index:c.HOME,category:c.CATEGORY,category_page:c.CATEGORY,collection:c.CATEGORY,catalog_category_view:c.CATEGORY,product:c.PRODUCT,product_page:c.PRODUCT,catalog_product_view:c.PRODUCT,cart:c.CART};function Nr(){if(!window.dataLayer?.length)return null;for(let e of window.dataLayer)if(e)for(let t of _i){let r=bi(wi(e,t));if(r!==null)return{pageType:r,confidence:"high"}}for(let e of window.dataLayer)if(e&&Si(e))return{pageType:c.CATEGORY,confidence:"low"};return null}function wi(e,t){return t.split(".").reduce((r,n)=>r?.[n],e)}function bi(e){return typeof e!="string"?null:Ti[e.trim().toLowerCase()]??null}function Si(e){return e.event==="view_item_list"||e[0]==="event"&&e[1]==="view_item_list"}s();function Hr(){let e=document.querySelectorAll('script[type="application/ld+json"]'),t=0;for(let r of e){let n;try{n=JSON.parse(r.textContent)}catch{continue}let o=Pi(n);for(let i of o)if(!(!i||typeof i!="object")){if($r(i,"CollectionPage"))return c.CATEGORY;t<2&&$r(i,"Product")&&t++}}return t===1?c.PRODUCT:null}function Pi(e){return Array.isArray(e)?e:e&&typeof e=="object"&&Array.isArray(e["@graph"])?[e,...e["@graph"]]:[e]}function $r(e,t){return[e["@type"],e.additionalType].flatMap(r=>Array.isArray(r)?r:[r]).some(r=>Ei(r,t))}function Ei(e,t){return typeof e=="string"&&(e===t||e===`https://schema.org/${t}`||e===`http://schema.org/${t}`)}s();function Gr(){let t=document.documentElement.getAttribute("itemtype");if(t){if(t.includes("schema.org/ItemPage"))return{pageType:c.PRODUCT,confidence:"high"};if(t.includes("schema.org/CollectionPage"))return{pageType:c.CATEGORY,confidence:"high"}}let r=document.querySelectorAll("[itemtype]"),n=0;for(let o of r){let i=o.getAttribute("itemtype");if(!(!i||!i.includes("schema.org/Product"))&&(n++,n>1))break}return n===1?{pageType:c.PRODUCT,confidence:"low"}:n>1?{pageType:c.CATEGORY,confidence:"low"}:null}s();function jr(){let e=document.querySelectorAll('meta[property="og:type"]'),t=!1,r=!1;for(let n of e){switch(n.content){case"product":case"product.item":case"og:product":t=!0;break;case"product.group":case"category":r=!0;break}if(t&&r)break}return t&&r?null:t?c.PRODUCT:r?c.CATEGORY:null}s();function Yr(){let e=document.body,t=document.querySelector("main"),r=e?.id||null,n=e?.classList??null,o=t?.classList??null,i={index:c.HOME,product:c.PRODUCT,category:c.CATEGORY,cart:c.CART};if(r&&i[r])return i[r];function a(...p){return!!n&&p.every(T=>n.contains(T))}function u(...p){return!!o&&p.every(T=>o.contains(T))}let f=[{when:()=>a("is-active-route-frontend-home-page"),pageType:c.HOME},{when:()=>a("is-active-route-frontend-detail-page"),pageType:c.PRODUCT},{when:()=>a("is-active-route-frontend-navigation-page"),pageType:c.CATEGORY},{when:()=>a("is-active-route-frontend-checkout-cart-page"),pageType:c.CART},{when:()=>a("is-ctl-navigation","is-act-home"),pageType:c.HOME},{when:()=>a("is-ctl-product","is-act-index"),pageType:c.PRODUCT},{when:()=>a("is-ctl-navigation","is-act-index"),pageType:c.CATEGORY},{when:()=>a("is-ctl-checkout","is-act-cartpage"),pageType:c.CART},{when:()=>a("cms-index-index"),pageType:c.HOME},{when:()=>a("catalog-product-view"),pageType:c.PRODUCT},{when:()=>a("catalog-category-view"),pageType:c.CATEGORY},{when:()=>a("checkout-cart-index"),pageType:c.CART},{when:()=>a("home"),pageType:c.HOME},{when:()=>a("single-product"),pageType:c.PRODUCT},{when:()=>a("tax-product_cat"),pageType:c.CATEGORY},{when:()=>a("woocommerce-cart"),pageType:c.CART},{when:()=>a("home-index-page"),pageType:c.HOME},{when:()=>a("products-detail-page"),pageType:c.PRODUCT},{when:()=>a("products-index-page"),pageType:c.CATEGORY},{when:()=>u("page-home"),pageType:c.HOME},{when:()=>u("page-product-detail"),pageType:c.PRODUCT},{when:()=>u("page-product-category"),pageType:c.CATEGORY},{when:()=>u("page-order"),pageType:c.CART}];for(let p of f)if(p.when())return p.pageType;return null}s();s();var ze={home:c.HOME,collection:c.CATEGORY,product:c.PRODUCT,cart:c.CART};function Fr(){let e=window.ShopifyAnalytics?.meta?.page?.pageType;return e?ze[e]??c.OTHER:null}var Ai={home:c.HOME,category:c.CATEGORY,product:c.PRODUCT,cart:c.CART,checkout:c.CART},xi={default:c.HOME,category:c.CATEGORY,product:c.PRODUCT,cart:c.CART,checkout:c.CART},Ci={home:c.HOME,category:c.CATEGORY,product:c.PRODUCT,cart:c.CART},vi={home:c.HOME,category:c.CATEGORY,product:c.PRODUCT,cart:c.CART,checkout:c.CART},Oi={home:c.HOME,category:c.CATEGORY,product:c.PRODUCT,cart:c.CART,checkout:c.CART},Ri={index:c.HOME,listing:c.CATEGORY,detail:c.PRODUCT,checkout:c.CART},ki={"store.home":c.HOME,"store.search#category":c.CATEGORY,"store.search#department":c.CATEGORY,"store.product":c.PRODUCT};function qr(e){let t=window.dfPageType;if(!e||!t)return null;switch(e){case"shopify":return ze[t]??c.OTHER;case"bigcommerce":return xi[t]??c.OTHER;case"shopware":case"shopware_app":return Ci[t]??c.OTHER;case"woocommerce":case"wordpress":return vi[t]??c.OTHER;case"magento":case"magento2":return Oi[t]??c.OTHER;case"prestashop":return Ai[t]??c.OTHER;case"shopware_5":return Ri[t]??c.OTHER;case"vtex":return ki[t]??c.OTHER;default:return null}}s();function zr(){let{pathname:e}=window.location;return Lt(e)?c.HOME:It(e)?c.PRODUCT:ie(e)!==null?c.CATEGORY:null}function Vr({platform:e,categoryMerchandisingPatterns:t,hashid:r}){try{let n=v("plugins",()=>qr(e));if(n||(n=v("categoryMerchandising",()=>Ur({hashid:r,patterns:t})),n)||(n=v("shopify",Fr),n)||(n=v("openGraph",jr),n))return n;let o=v("dataLayer",Nr);if(o?.confidence==="high")return o.pageType;let i=v("microdata",Gr);return i?.confidence==="high"?i.pageType:(n=v("platformDom",Yr),n||(o?.confidence==="low"?o.pageType:i?.confidence==="low"?i.pageType:(n=v("jsonLd",Hr),n||(n=v("url",zr),n)?n:"other")))}catch(n){return console.error("[page-type] detectPageType threw unexpectedly, falling back to 'other'",n),"other"}}function v(e,t){try{return t()}catch(r){return d(`[page-type] Failed to detect from source "${e}"`,r),null}}var Br=!1;function Kr(e,t,r,n){if(Br)throw new Error("Doofinder already exists!");{let T=function(m){let g=f.settings,b=pr(m,g);d("[loader]","Resolved search engine",b);let k=Ut(f,t),D=Vr({platform:g.platform_integration_type,categoryMerchandisingPatterns:k,hashid:b.hashid});d("[loader]","Page type detected",D);let Be=Promise.resolve(null);D===c.PRODUCT&&b.hashid&&(Be=dt(m.zone,b.hashid,window.location.href));let Zr=m.register_visits||m.register_visits===void 0&&g.register_visits,en=m.register_checkouts||m.register_checkouts==null&&g.register_checkouts,tn=m.require_cookies_consent||m.require_cookies_consent===void 0&&g.require_cookies_consent;i={...m,...b,pageType:D,dfidPromise:Be,pageTypeMappings:g.page_type_mappings||[],registerVisits:Zr,registerCheckouts:en,device:m.device||qe(),account_code:g.account_code,require_cookies_consent:tn,checkout_confirmation_urls:g.checkout_confirmation_urls||[],checkout_summary_urls:g.checkout_summary_urls||[],sales_api_integration:g.sales_api_integration||!1,ga4_integration:g.ga4_integration,integrations_list:g.integrations_list||[],platform_integration_type:g.platform_integration_type,userHistoryEnabled:g.user_history_enabled||!1,categoryMerchandisingPatterns:k}},R=function(m,g,b=null){let k=fr(u,i,m,g,f,b);k&&(a[m]||(a[m]=[]),a[m].push(k))},Wr=function(){let m=Qr().filter(([g])=>!r.includes(g));Xr(m),m.forEach(g=>{R(...g),Xt(g,()=>R(...g))})},Qr=function(){if(i.apps==!1)return t;let m=t.map(D=>D[0]),g=f.apps.filter(D=>!m.includes(D.name)),b=Mr(g),k=Zt(b,t);return t.concat(k)},Xr=function(m){m.forEach(g=>{let b=g[0];tr.includes(b)&&St(ur(b))})};Br=!0;let o={},i={},a={},u,f,p=new $;o=rr(Object.values(ue)),u=nr(o),document.addEventListener("doofinder.register",m=>{let{name:g,entrypoint:b}=m.detail;o[g].resolve(b)});async function Ve(m){f=m[0],vr(f,e,t),T(e),i.require_cookies_consent||Se(),h.getSessionId(),h.getUserId(),h.getTabId(),y(w,"script-version","2.0"),p.resolve(!0),d("[loader]","Doofinder ready. Apps will be initialized now."),Wr(),Cr(i),xr(i),wr(i),i.registerVisits&&(_r(i),y(w,"hashid",i.hashid)),$t(i),i.userHistoryEnabled&&ut(i)}return n?Ve(n):mr(e.store,e.zone).then(m=>{Ve(m)}).catch(m=>{Object.seal(m),p.reject(m)}),{get Session(){return h},tools:{domObserver:O,isCheckoutPage:(m=window.location.href)=>jt(i,m)},getApp(m){return a[m]},getRegistry(m){return o[m]},getConfig(){return{store:i.store,zone:i.zone,hashid:i.hashid,platformAppKey:i.platformAppKey}},getPageContext(){let m=[];return i.pageType===c.CATEGORY&&(m=ae({platform:i.platform_integration_type,categoryMerchandisingPatterns:i.categoryMerchandisingPatterns,hashid:i.hashid})),{pageType:i.pageType,dfidPromise:i.dfidPromise,category:m}},buildCart(m){return new re(m)},ready(){return p.promise},AI:{Assistant:{async open(){(await o.layer).getTags()[0].openAIAssistant()}},ProductAIAssistant:{async open(){qe()=="mobile"?(await o.layer).getTags()[0].openAIAssistant():(await o.product_ai_assistant).getTags()[0].open()}}},enableCookies:Se,disableCookies:ot,enableDebug:Ze,disableDebug:et,setLayerServerUrl:wt,setCDNServerUrl:Tt,init:R,configure:T,registerApp:or,Integrations:{}}}}s();function Jr(){let e=window.DoofinderAppsObject,t=window[e].q,r={},n=[],o=[],i=null,a;for(;a=t.shift();){let[u,f,p,T]=a;if(u==="config")f==="settings"?i=p:r[f]=p;else if(u==="init")n.push([f,p,T]);else if(u==="disable"&&Array.isArray(f))for(let R of f)o.push(R)}return{config:r,apps:n,disabledApps:o,scriptStoreConfig:i}}if(window.DoofinderStarted===void 0){window.DoofinderStarted=!0,We();let{config:e,apps:t,disabledApps:r,scriptStoreConfig:n}=Jr(),o=Kr(e,t,r,n);Object.defineProperty(window,"Doofinder",{value:o,writable:!1})}else console.warn("Multiple Doofinder single scripts detected. Only one will be executed.");})();